package com.xiaohong.goods.pojo;
import com.baomidou.mybatisplus.annotation.*;
import static io.swagger.v3.oas.annotations.media.Schema.AccessMode.READ_ONLY;
import io.swagger.v3.oas.annotations.media.Schema;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.lang.Long;
import java.util.Date;
import java.lang.String;
import java.lang.Integer;
import java.util.List;

@Schema(name = "Spu")
public class Spu implements Serializable{

	@TableId(value = "id",type = IdType.ASSIGN_ID)
	@Schema(description = "主键",accessMode = READ_ONLY)
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	private String id;//主键

	@Schema(description = "SPU名")
	@TableField("name")
	private String name;//SPU名

	@Schema(description = "副标题")
	@TableField("caption")
	private String caption;//副标题

	@Schema(description = "品牌ID")
	@TableField("brand_id")
	private Integer brandId;//品牌ID

	@Schema(description = "品牌中文名称")
	@TableField("brand_chinese_name")
	private String brandChineseName;//品牌中文名称

	@Schema(description = "品牌英文名称")
	@TableField("brand_english_name")
	private String brandEnglishName;//品牌英文名称

	@Schema(description = "一级分类名称")
	@TableField("category1_name")
	private String category1Name;//一级分类名称

	@Schema(description = "一级分类")
	@TableField("category1_id")
	private Integer category1Id;//一级分类

	@Schema(description = "二级分类名称")
	@TableField("category2_name")
	private String category2Name;//二级分类名称

	@Schema(description = "二级分类")
	@TableField("category2_id")
	private Integer category2Id;//二级分类

	@Schema(description = "三级分类名称")
	@TableField("category3_name")
	private String category3Name;//三级分类名称

	@Schema(description = "三级分类")
	@TableField("category3_id")
	private Integer category3Id;//三级分类

	@Schema(description = "介绍")
	@TableField("introduction")
	private String introduction;//介绍

	@Schema(description = "规格列表")
	@TableField("spec_items")
	private String specItems;//规格列表

	@Schema(description = "搜索可聚合规格列表")
	@TableField("spec_aggregation_items")
	private String specAggregationItems;//搜索可聚合规格列表

	@Schema(description = "sku选择聚合规格列表")
	@TableField("spec_sku_items")
	private String specSkuItems;//sku选择聚合规格列表

	@Schema(description = "规格集合",accessMode = READ_ONLY )
	@TableField(exist = false)
	private List SpecList; // 规格集合

	@Schema(description = "销量")
	@TableField("sale_num")
	private Integer saleNum;//销量

	@Schema(description = "评论数")
	@TableField("comment_num")
	private Integer commentNum;//评论数

	@Schema(description = "是否上架,0已下架，1已上架")
	@TableField("is_marketable")
	private Integer isMarketable;//是否上架,0已下架，1已上架

	@Schema(description = "审核状态，0：未审核，1：已审核，2：审核不通过")
	@TableField("status")
	private Integer status;//审核状态，0：未审核，1：已审核，2：审核不通过

	@Schema(description = "售后服务")
	@TableField("after_service")
	private String afterService;//售后服务

	@Schema(description = "逻辑删除标志",accessMode = READ_ONLY)
	@TableLogic
	private Integer deleted;//逻辑删除标志

	@Schema(description = "创建时间",accessMode = READ_ONLY)
	@TableField(value = "gmt_create",fill = FieldFill.INSERT)
	private Date gmtCreate;//创建时间

	@Schema(description = "更改时间",accessMode = READ_ONLY)
	@TableField(value = "gmt_modified",fill = FieldFill.INSERT_UPDATE)
	private Date gmtModified;//更改时间

	@Schema(description = "乐观锁",accessMode = READ_ONLY)
	@Version
	private Integer version;//乐观锁

	@Schema(description = "sku集合",accessMode = READ_ONLY)
	@TableField(exist = false)
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	private List<Sku> skuList;//sku集合

	public String getSpecSkuItems() {
		return specSkuItems;
	}

	public void setSpecSkuItems(String specSkuItems) {
		this.specSkuItems = specSkuItems;
	}

	public String getSpecAggregationItems() {
		return specAggregationItems;
	}

	public void setSpecAggregationItems(String specAggregationItems) {
		this.specAggregationItems = specAggregationItems;
	}

	public String getCategory1Name() {
		return category1Name;
	}

	public void setCategory1Name(String category1Name) {
		this.category1Name = category1Name;
	}

	public String getCategory2Name() {
		return category2Name;
	}

	public void setCategory2Name(String category2Name) {
		this.category2Name = category2Name;
	}

	public String getCategory3Name() {
		return category3Name;
	}

	public void setCategory3Name(String category3Name) {
		this.category3Name = category3Name;
	}

	public String getBrandChineseName() {
		return brandChineseName;
	}

	public void setBrandChineseName(String brandChineseName) {
		this.brandChineseName = brandChineseName;
	}

	public String getBrandEnglishName() {
		return brandEnglishName;
	}

	public void setBrandEnglishName(String brandEnglishName) {
		this.brandEnglishName = brandEnglishName;
	}

	public List<Sku> getSkuList() {
		return skuList;
	}

	public void setSkuList(List<Sku> skuList) {
		this.skuList = skuList;
	}

	public List getSpecList() {
		return SpecList;
	}

	public void setSpecList(List specList) {
		SpecList = specList;
	}

	//get方法
	public String getId() {
		return id;
	}

	//set方法
	public void setId(String id) {
		this.id = id;
	}
	//get方法
	public String getName() {
		return name;
	}

	//set方法
	public void setName(String name) {
		this.name = name;
	}
	//get方法
	public String getCaption() {
		return caption;
	}

	//set方法
	public void setCaption(String caption) {
		this.caption = caption;
	}
	//get方法
	public Integer getBrandId() {
		return brandId;
	}

	//set方法
	public void setBrandId(Integer brandId) {
		this.brandId = brandId;
	}
	//get方法
	public Integer getCategory1Id() {
		return category1Id;
	}

	//set方法
	public void setCategory1Id(Integer category1Id) {
		this.category1Id = category1Id;
	}
	//get方法
	public Integer getCategory2Id() {
		return category2Id;
	}

	//set方法
	public void setCategory2Id(Integer category2Id) {
		this.category2Id = category2Id;
	}
	//get方法
	public Integer getCategory3Id() {
		return category3Id;
	}

	//set方法
	public void setCategory3Id(Integer category3Id) {
		this.category3Id = category3Id;
	}
	//get方法
	public String getIntroduction() {
		return introduction;
	}

	//set方法
	public void setIntroduction(String introduction) {
		this.introduction = introduction;
	}
	//get方法
	public String getSpecItems() {
		return specItems;
	}

	//set方法
	public void setSpecItems(String specItems) {
		this.specItems = specItems;
	}
	//get方法
	public Integer getSaleNum() {
		return saleNum;
	}

	//set方法
	public void setSaleNum(Integer saleNum) {
		this.saleNum = saleNum;
	}
	//get方法
	public Integer getCommentNum() {
		return commentNum;
	}

	//set方法
	public void setCommentNum(Integer commentNum) {
		this.commentNum = commentNum;
	}
	//get方法
	public Integer getIsMarketable() {
		return isMarketable;
	}

	//set方法
	public void setIsMarketable(Integer isMarketable) {
		this.isMarketable = isMarketable;
	}
	//get方法
	public Integer getStatus() {
		return status;
	}

	//set方法
	public void setStatus(Integer status) {
		this.status = status;
	}
	//get方法
	public String getAfterService() {
		return afterService;
	}

	//set方法
	public void setAfterService(String afterService) {
		this.afterService = afterService;
	}
	//get方法
	public Integer getDeleted() {
		return deleted;
	}

	//set方法
	public void setDeleted(Integer deleted) {
		this.deleted = deleted;
	}
	//get方法
	public Date getGmtCreate() {
		return gmtCreate;
	}

	//set方法
	public void setGmtCreate(Date gmtCreate) {
		this.gmtCreate = gmtCreate;
	}
	//get方法
	public Date getGmtModified() {
		return gmtModified;
	}

	//set方法
	public void setGmtModified(Date gmtModified) {
		this.gmtModified = gmtModified;
	}
	//get方法
	public Integer getVersion() {
		return version;
	}

	//set方法
	public void setVersion(Integer version) {
		this.version = version;
	}


}
